1. Technical Field
This invention relates generally to data encoding systems, and more particularly to systems implementing codes of the type known as maximum transition run (MTR) codes.
2. Description of the Related Art
Channel codes are mappings of data bits into symbols (i.e. channel bits) which are recorded on to a medium in a storage device, such as a computer hard disk drive. Channel codes are commonly used to prevent certain characteristics in the bit-stream of symbols that make recovery of the data bits more difficult. The code rate for such a code is usually specified as m/n, which indicates the ratio of the number of data bits xe2x80x9cmxe2x80x9d to channel bits xe2x80x9cnxe2x80x9d. MTR codes are a particular type of channel code utilized to eliminate certain error prone binary patterns from the allowable set of channel bits recorded on a magnetic recording medium, such as a magnetic disk or tape. With MTR codes, the number of consecutive transitions that can occur in the magnetization pattern on the recording medium is limited to a particular number denoted by xe2x80x9cjxe2x80x9d. When used in conjunction with the NRZI (Non-Return-to-Zero-Inversion) recording format, a MTR code limits the maximum number of consecutive xe2x80x9c1""sxe2x80x9d in the channel bit-sequence. This j constraint produces the desirable consequence of reducing errors in data recovery. More particularly, the bit-error .rate performance is improved by providing a distance gain (i.e. an increase in the minimum Euclidean distance between recording patterns), or by eliminating the most likely error events, thus reducing the likelihood of .errors in the sequence detectors on the data recovery side. For example, when used in conjunction with higher-order partial response shaping and maximum likelihood sequence detection, such as in an E2PR4 partial response channel, MTR codes with j=2 can deliver a distance gain of 2.2 dB. MTR codes with j=2 also allow data to be written to a disk at very high rates. The design of high code-rate MTR codes is therefore of great interest, and particularly so for the higher-order partial response channels used in hard disks for example.
In addition to the j constraint, MTR codes typically limit the maximum number of consecutive xe2x80x9c0""sxe2x80x9d to a particular number denoted as xe2x80x9ckxe2x80x9d to aid timing recovery and gain control, and such a code is usually specified as an MTR(j, k) code. MTR(j, k) codes with j=2 are discussed in U.S. Pat. No. 5,859,601. A rate 6/7 MTR(2, 8) code is proposed in IEEE Transactions on Magnetics, Vol. 33, No. 5, September 1997, xe2x80x9cDesign of a Rate 6/7 Maximum Transition Run Codexe2x80x9d, Brickner and Moon. It can be shown that this code is quasi-catastrophic and requires very long path memories in the sequence detector. Quasi-catastrophic codes include coded bit-sequences containing a succession of the bit series 1100, which are undesirable because these bit-sequences do not accumulate Euclidean distance in the sequence detector and the coded bit-sequence is therefore more likely to be identified incorrectly. Quasi-catastrophic error events are avoided in a rate 16/17 MTR code with j=3 which is discussed in a paper by Takushi et al, Hitachi Ltd, published at the GLOBECOM""98 conference in November 1998 under the title xe2x80x9cTurbo-EEPRML: An EEPR4 Channel with an Error-Correcting Post-Processor Designed for 16/17 Rate Quasi-MTR codexe2x80x9d. A rate 16/19 MTR(2, 7) code is also mentioned in IEEE Transactions on Magnetics, Vol. 32, No. 5, September 1996, xe2x80x9cMaximum Transition Run Codes for Data Storage Systemsxe2x80x9d, Brickner and Moon, though the question of implementing such a code without resorting to a costly lookup table has not been addressed.
The methods of the present invention provide for MTR codes to be implemented by partitioning the input data words into blocks of bits and then applying coding and a violation correction stage in such a manner as to satisfy the j, k constraints. This partitioned-block implementation provides the advantages of MTR codes while dramatically simplifying the implementation of the encoder and allows even high code-rate codes to be implemented in a highly efficient manner. Encoding methods embodying the invention can be implemented with relatively few logic gates without requiring extensive lookup tables, resulting in efficient, low cost encoder/decoder systems.
According to one aspect of the present invention there is provided a method for encoding to a magnetic recording channel a plurality of successive m-bit binary data words to produce a plurality of successive n-bit binary code words, where n and m are preselected positive integers such that n is greater than m. Each m-bit binary data words is identically partitioned into a plurality of blocks of bits. At least one of the blocks of bits of each m-bit binary data word is encoded in accordance with a finite-state coding scheme to produce a plurality of successive n-bit binary code words which are then transformed by at least one stage of violation correction. Violation correction includes detecting the occurrence of any of a plurality of prohibited bit patterns at one or more predetermined locations within each of the plurality of successive n-bit binary code words and replacing any prohibited bit pattern so detected by a corresponding substitute bit pattern. The finite-state coding scheme, prohibited bit patterns, and substitute bit patterns are predetermined, whereby, the maximum number of consecutive bits of a first value, in said plurality of successive n-bit binary code words, is limited to a first predetermined number j, where j is a positive integer which is greater or equal to 2, and the maximum number of consecutive bits of a second value is limited to a second predetermined number k, where k is a positive integer.
As indicated above, after partitioning the input data word into a number of blocks, at least one of these blocks is encoded in accordance with a finite-state coding scheme. As will be apparent from the examples detailed below, the finite-state codes employed here may be block codes, a block code being a special case of a finite-state code in that a block code is a one-state code. Where more than one block is encoded here, different finite-state codes may be employed for different blocks.
Preferred embodiments of the present invention utilize prohibited and substitute bit patterns which are defined such that quasi-catastrophic error propagation is avoided. This is achieved by imposing a further constraint whereby, a serial bit-stream, comprised of a plurality of successive n-bit binary code words, is such that the maximum number of bits in any consecutive bit-string with a four-bit period, in which two consecutive bits of a first value is followed by two consecutive bits of a second value, is limited to a third predetermined number q. Thus, the maximum length of coded bit-sequences that do not accumulate distance in sequence detection is limited to q, allowing path memory lengths in the sequence detector to be limited accordingly.
As will be appreciated, in embodiments conforming to the NRZI recording format where xe2x80x9c1xe2x80x9d represents a magnetic transition and xe2x80x9c0xe2x80x9d no transition, said bits of one value will be bits of value xe2x80x9c1xe2x80x9d, whereby j and k represent the maximum length of series of consecutive 1""s and 0""s respectively.
Preferred embodiments, which advantageously utilize the methods of the present invention, provide for efficient implementation of very high code rate MTR codes, and examples for a rate 16/19 and a rate 16/17 code are detailed below. Those skilled in the art will be able to design other examples based on the techniques described herein.
It is to be appreciated that, where features are described herein with reference to a method embodying the invention, corresponding features may be provided in accordance with apparatus embodying the invention, and vice versa.
All objects, features, and advantages of the present invention will become apparent in the following detailed written description.